package com.slimbloody.score.interfaces;

import com.slimbloody.score.Param.CalContextFetcher;
import com.slimbloody.score.Param.MatchContextFetcher;


// Match1Param(A), Match1Context(B), Cal1Param(C), Cal1Context(D)
// public interface Rule<A, B, T, U> extends Calculation<A>, RuleMatcher<B>, MatcherContextFetcher<B, U> {
public interface Rule<MatchParam, MatchContext, CalParam, CalContext> extends
  MatchContextFetcher<MatchParam, MatchContext>,
  CalContextFetcher<CalParam, CalContext>, RuleMatcher<MatchContext>, Calculation<CalContext> {
}
